Vehicle Take Ownership
Detailed description of API:
Interface currently available for DMS development in:
- NAFTA
Version & Updates
| Version | Revision Date | Revision History |
|---|---|---|
| 1.0 | 22 Oct 2026 | New Release |
Overview
The Vehicle Ownership APIs enable Dealer Management Systems (DMS) to integrate with SAP via DEP for managing the complete vehicle ownership lifecycle.
These APIs support:
- Ownership Request Tracking
- Take Ownership Request
- Give Ownership Request
- Ownership Approval Workflow
- Ownership Rejection Processing
- Dealer Visibility Validation
- Rejection Reason Retrieval
Pre-requisites
- Dealer must use Dealer Portal credentials to authorize API calls.
- A valid DEP Subscription Key is required.
- Each subscription key is unique to the environment.
- The request must include the appropriate Content-Type header.
Authentication
- DMS authentication is handled by the DEP-Ext team.
- The PPT specifies User ID, Password, and Subscription Key for DEP authentication.
- Confirm the required authentication headers and credential configuration with the DEP-Ext team.
- All API calls must be made over HTTPS.
API Format
- REST
The DEP takes care of message routing and transformations between the DMS application and SAP backend services.
Connection Details
For Vehicle Ownership there are 6 API types offered:
- Ownership Request List
- Visibility
- Notified Dealer List
- Request Take/Give Ownership
- Action on Request
- Retrieve Rejection Reasons
CNH provides two environments:
- CERT / UAT
- Production
The environments are intended to provide the same functionality, with environment-specific endpoints and credentials.
High-Level Integration Approach
- The DMS sends a connection request to the DEP-Ext team.
- The DEP-Ext team handles authentication.
- DEP-Ext receives the request and forwards it to eWarranty/SAP.
- The eWarranty/SAP team processes the request and returns the response or status code to DEP-Ext.
- DEP-Ext returns the response or status code to the DMS.
1. Ownership Request List and Counter API
This API retrieves ownership requests previously sent and received by a dealer. It can also return the number of requests that remain in Pending status and are awaiting action from the logged-in dealer.
| Environment | URL | API | Request Type |
|---|---|---|---|
| CERT/UAT | https://{base_url}/external/services/vehicleownership/requestlistandcounter | REST | POST |
| Production | https://{base_url}/external/services/vehicleownership/requestlistandcounter | REST | POST |
Request Description
| Name | Data Type | Description / Remarks | Is Required | Sample Data |
|---|---|---|---|---|
| language | String | Language linked to the logged-in dealer | Yes | EN |
| user | String | User name of the logged-in dealer | Yes | USER001 |
| dealer | String | Dealer linked to the user | Yes | DEALER001 |
| counterFlag(*) | String | If flagged, returns the count of requests in Pending status | No | X |
| listFlag(*) | String | If flagged, extracts all request information | No | X |
- (*) Mutually exclusive fields.
Request body format: JSON.
Sample JSON payload:
{
"language": "EN",
"user": "USER001",
"dealer": "DEALER001",
"counterFlag": "X",
"listFlag": ""
}
Response Description
| Name | Data Type | Description / Remarks | Sample Data |
|---|---|---|---|
| messageid | String | Success or error message identifier | |
| messagetext | String | Text describing the result | |
| counterrequest | String | Number of pending requests | |
| tablerequestlist | Object Array | Table of requests | |
| tablerequestlist.o_vin | String | Vehicle Internal Number of the vehicle | VIN000000000000001 |
| tablerequestlist.o_req_date | String | Date the request was created | |
| tablerequestlist.o_status | String | Status of the request: approved, rejected, or pending | APPROVED |
| tablerequestlist.o_req_dealer | String | Dealer that created the request | DEALER003 |
| tablerequestlist.o_req_dlr_name | String | Name of the requesting dealer | SAMPLE DEALER A |
| tablerequestlist.o_notified_dlr | String | Dealer that received the request | |
| tablerequestlist.o_notified_dlr_name | String | Name of the notified dealer | |
| tablerequestlist.o_req_type | String | Type of ownership request | |
| tablerequestlist.o_rej_reason | String | Rejection reason, if the request was rejected | |
| tablerequestlist.o_rej_reas_txt | String | Text describing the rejection reason | |
| tablerequestlist.o_last_chng_dat | String | Date of the last change |
2. Visibility of Take/Give Ownership
This API identifies whether the Take Ownership or Give Ownership action should be available for a specific vehicle and dealer.
| Environment | URL | API | Request Type |
|---|---|---|---|
| CERT/UAT | https://{base_url}/external/services/vehicleownership/visibilitytakeandgiveownership | REST | GET |
| Production | https://{base_url}/external/services/vehicleownership/visibilitytakeandgiveownership | REST | GET |
Request Description
| Name | Data Type | Description / Remarks | Is Required | Sample Data |
|---|---|---|---|---|
| language | String | Language linked to the logged-in dealer | Yes | EN |
| user | String | User name of the logged-in dealer | Yes | USER001 |
| vin | String | Vehicle Identification Number | Yes | VIN000000000000002 |
| dealer | String | Dealer code linked to the user | Yes | DEALER002 |
Request body format: JSON.
Illustrative sample JSON payload; confirm against the API specification:
{
"language": "EN",
"user": "USER001",
"vin": "VIN000000000000002",
"dealer": "DEALER002"
}
Response Description
| Name | Data Type | Description / Remarks | Sample Data |
|---|---|---|---|
| messageid | String | Success or error message identifier | E |
| messagetext | String | Text describing the result | Vehicle found on the system |
| giveownershipflag | String | Indicates whether Give Ownership should be available | X |
| takeownershipflag | String | Indicates whether Take Ownership should be available |
3. Notified Dealer List API
This API retrieves the list of dealers available for the Give Ownership functionality.
| Environment | URL | API | Request Type |
|---|---|---|---|
| CERT/UAT | https://{base_url}/external/services/vehicleownership/dealernotification | REST | GET |
| Production | https://{base_url}/external/services/vehicleownership/dealernotification | REST | GET |
Request Description
| Name | Data Type | Description / Remarks | Is Required | Sample Data |
|---|---|---|---|---|
| language | String | Language linked to the logged-in dealer | Yes | EN |
| user | String | User name of the logged-in dealer | Yes | USER001 |
| vin | String | Vehicle Identification Number | Yes | VIN000000000000002 |
| dealer(*) | String | Dealer code linked to the user | Yes | DEALER001 |
| dealerName(*) | String | Dealer name | No | SAMPLE DEALER B |
| country(*) | String | Country of the dealer | No | US |
| city(*) | String | City of the dealer | No | SAMPLE CITY |
- (*) Mutually exclusive fields.
Request body format: JSON.
Illustrative sample JSON payload; confirm against the API specification:
{
"language": "EN",
"user": "USER001",
"vin": "VIN000000000000002",
"dealer": "DEALER001",
"dealerName": "SAMPLE DEALER B",
"country": "US",
"city": "SAMPLE CITY"
}
Response Description
| Name | Data Type | Description / Remarks | Sample Data |
|---|---|---|---|
| messageId | String | Success or error message identifier | S |
| messageText | String | Text describing the result | One or more dealer found |
| tableDealers | Object Array | Table of dealers | |
| tableDealers.oKunnr | String | Dealer code linked to the user | DEALER001 |
| tableDealers.oName | String | Dealer name | SAMPLE DEALER B |
| tableDealers.oLand | String | Country of the dealer | US |
| tableDealers.oCity | String | City of the dealer | SAMPLE CITY |
4. Request Take/Give Ownership API
This API submits a new Take Ownership or Give Ownership request.
- Take Ownership: A dealer wants to become the service dealer for a vehicle.
- Give Ownership: A dealer wants to transfer ownership of a vehicle to another dealer.
| Environment | URL | API | Request Type |
|---|---|---|---|
| CERT/UAT | https://{base_url}/external/services/vehicleownership/takeorgiveownership | REST | POST |
| Production | https://{base_url}/external/services/vehicleownership/takeorgiveownership | REST | POST |
Request Description
| Name | Data Type | Description / Remarks | Is Required | Sample Data |
|---|---|---|---|---|
| language | String | Language linked to the logged-in dealer | Yes | EN |
| user | String | User name of the logged-in dealer | Yes | USER001 |
| dealer | String | Dealer code linked to the user | Yes | DEALER001 |
| giveOwnershipFlag | String | Identifies a Give Ownership scenario | Yes | X |
| takeOwnershipFlag | String | Identifies a Take Ownership scenario | No | |
| tableVehicleInfo | Object Array | Table with vehicle information | Yes | |
| tableVehicleInfo.vin | String | Vehicle Identification Number | Yes | VIN000000000000003 |
| tableVehicleInfo.notifiedDealer | String | Notified dealer in a Give Ownership scenario | Yes | DEALER002 |
Request body format: JSON.
Illustrative sample JSON payload; confirm the final vehicle-information array format with the API team:
{
"language": "EN",
"user": "USER001",
"dealer": "DEALER003",
"giveOwnershipFlag": "X",
"takeOwnershipFlag": "",
"tableVehicleInfo": [
{
"vin": "VIN000000000000001",
"notifiedDealer": "DEALER002"
}
]
}
Response Description
| Name | Data Type | Description / Remarks | Sample Data |
|---|---|---|---|
| message_id | String | Success or error message identifier | |
| messageText | String | Text describing the result | |
| vin | String | Vehicle Identification Number |
5. Action on Request API
This API allows a dealer to perform an action on a specific ownership request:
- Approve a request.
- Reject a request.
- Revoke a pending request.
| Environment | URL | API | Request Type |
|---|---|---|---|
| CERT/UAT | https://{base_url}/external/services/vehicleownership/actiononrequest | REST | POST |
| Production | https://{base_url}/external/services/vehicleownership/actiononrequest | REST | POST |
Request Description
| Name | Data Type | Description / Remarks | Is Required | Sample Data |
|---|---|---|---|---|
| language | String | Language linked to the logged-in dealer | Yes | EN |
| user | String | User name of the logged-in dealer | Yes | USER001 |
| tableActions | Object Array | Table with actions | Yes | |
| tableActions.vin | String | Vehicle Internal Number of the vehicle | Yes | VIN000000000000002 |
| tableActions.flagApprove | String | Indicates approval of a request | No | X |
| tableActions.flagReject | String | Indicates rejection of a request | No | |
| tableActions.flagRevoke | String | Indicates revocation of a pending request | No | |
| tableActions.rejectionReason | String | Rejection reason when a request is rejected | No | |
| tableActions.rejectionReasonText | String | Text describing the rejection reason | No |
Request body format: JSON.
Illustrative sample JSON payload; confirm the final actions array name and structure with the API team:
{
"language": "EN",
"user": "USER001",
"tableActions": [
{
"vin": "VIN000000000000001",
"flagApprove": "X",
"flagReject": "",
"flagRevoke": "",
"rejectionReason": "",
"rejectionReasonText": ""
}
]
}
Response Description
| Name | Data Type | Description / Remarks | Sample Data |
|---|---|---|---|
| vin | String | Vehicle Identification Number | VIN000000000000002 |
| result | String | Result of the action: OK or KO | OK |
| messagetext | String | Text describing the result | Action correctly updated |
6. Retrieve Rejection Reasons API
This API retrieves the list of possible rejection reasons that a dealer can use when rejecting an ownership request.
| Environment | URL | API | Request Type |
|---|---|---|---|
| CERT/UAT | https://{base_url}/external/services/vehicleownership/retrieverejectionreason | REST | GET |
| Production | https://{base_url}/external/services/vehicleownership/retrieverejectionreason | REST | GET |
Request Description
| Name | Data Type | Description / Remarks | Is Required | Sample Data |
|---|---|---|---|---|
| language | String | Language linked to the logged-in dealer | Yes | EN |
Request body format: JSON.
Illustrative sample JSON payload; confirm against the API specification:
{
"language": "EN"
}
Response Description
| Name | Data Type | Description / Remarks | Sample Data |
|---|---|---|---|
| messageid | String | Success or error message identifier | S |
| messagetext | String | Text describing the result | One or more Reason found |
| tablerejectionreasons | Object Array | Table of rejection reasons | |
| tablerejectionreasons.reje_reas_code | String | Code of the rejection reason | REJ001 |
| tablerejectionreasons.reje_reas_descr | String | Description of the rejection reason | Missing Documentation |
References
- eWarranty Take Vehicle Ownership / DEP Integration — Functional and Technical Requirements, March 13, 2026.
- DEP-Ext and eWarranty/SAP API implementation specifications.